import transformers
import tokenizers

from transformers import AutoTokenizer

# 加载预训练的分词器
tokenizers = AutoTokenizer.from_pretrained("bert-base-chinese")
print(type(tokenizers))

text = "is a test sentence."
# text = "这是一个测试的句子。"

# 将文本编码为 token 序号列表
tokens = tokenizers.encode(text)
token_count = len(tokens)

print("Tokens:", tokens)
print("len of Tokens:", len(tokens))

# 将文本分词为 token 列表
tokens = tokenizers.tokenize(text)
print("分词结果:", tokens)

# 编写代码从 vocab.txt 中查找出每个序号对应的单词
# 首先获取词汇表，它是一个字典，键是 token，值是对应的序号
vocab = tokenizers.get_vocab()
# 反转词汇表，使得键是序号，值是对应的 token
reverse_vocab = {index: token for token, index in vocab.items()}
# 根据之前编码得到的 token 序号列表，查找对应的单词
words = [reverse_vocab[token_id] for token_id in tokenizers.encode(text)]
print("每个序号对应的单词:", words)